1. Technical Field
The present disclosure generally relates to improving performance of an entertainment device during trick modes and more particularly, but not exclusively, relates to efficiently using a storage medium to play video forward and reverse at a faster than normal speed.
2. Description of the Related Art
Entertainment systems are used to present audio and video information to users. For example, satellite and cable television systems present programming content to users through presentation systems such as televisions and stereos. The programming content may include sporting events, news events, television shows, or other information. The programming content generally includes audio information, video information, and control information which coordinates the presentation of the audio and video data.
In many cases, the programming content is encoded according to an accepted multimedia encoding standard. For example, the programming content may conform to an ISO/IEC MPEG-2 standard, an ISO/IEC MPEG-4 standard, an ITU-T H.264 standard, or some other standard.
In many cases, the accepted multimedia encoding standard will encode the video data as a sequence of constituent frames. The constituent frames are used independently or in combination to generate presentable video frames which can be sent in sequence to a presentation device such as a display. The video data may, for example, be encoded as a video data stream of I-frames, P-frames, and B-frames according to a multimedia standard protocol.
An I-frame, or intra-frame, is a frame of video data encoded without reference to any other frame. A video data stream will typically begin with an I-frame. Subsequent I-frames will be included in the video data stream at regular or irregular intervals. I-frames typically provide identifiable points for specific access into the video data stream. For example, when a user is seeking to find a particular point in a multimedia file, a decoder may access and decode I-frames in a video data stream in either a fast-forward or reverse playback mode. An advantage of I-frames is that they include enough information to generate a complete frame of presentable data that can be sent to a display device. A disadvantage of I-frames is that they are relatively large compared to other frames.
A P-frame, or predictive inter-frame, is encoded with reference to a previous I-frame or a previous P-frame. Generally speaking, a P-frame does not include enough information to generate the static elements of a presentable frame that have not changed from previous frames. Instead, the P-frame merely references a particular previous frame and uses the video information found in the previous frame. Stated differently, the areas of a presentable frame that have not changed are propagated from a previous frame, and only the areas of a presentable frame that have changed (i.e., the areas that are in motion) are updated in the current frame. Thus, only the areas of the presentable frame that are in motion are encoded in the P-frame. Accordingly, P-frames are generally much smaller in size than I-frames.
A B-frame, or bi-directionally predictive inter-frame, is encoded with reference to one or more preceding reference frames as well as one or more future reference frames. B-frames improve the quality of multimedia content by smoothly tying video frames of moving video data together. A B-frame is typically very small in size relative to I-frames and P-frames. On the other hand, a B-frame typically requires more memory, time, and processing capability to decode.
In an example, programming content is encoded as a stream of video data according an MPEG-2 or MPEG-4 multimedia standard. In the stream of video data, one of every ten to thirty frames may be an I-frame. If the video information is presented at a rate of 30 frames-per-second (30 fps), then each second of presentable data may include only two or three I-frames or fewer. The remaining 27 or 28 frames per second of presentable data are formed by decoding the P-frames and B-frames.
During trick play modes (e.g., fast-forward, reverse, and the like), the constituent frames are retrieved and decoded into presentable frames, and the presentable frames are output to a presentation device. In order to perform a trick play mode, the entertainment device must be able to quickly retrieve and decode the constituent frames. When played at faster speeds, the entertainment device will often retrieve and decode only the I-frames because in conventional systems, there are insufficient computing resources to retrieve and decode every frame in the stream.